package com.xintai.approval.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xintai.common.annotation.Excel;
import com.xintai.common.core.domain.BaseEntity;

/**
 * 工作流程对象 flow_workflow
 *
 * @author xintai
 * @date 2021-02-01
 */
public class FlowWorkflow extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 审批人id */
    @Excel(name = "审批人id")
    private String approverUid;

    /** 状态0：未审核，1：正在审核：2：已审核 */
    @Excel(name = "状态0：未审核，1：正在审核：2：已审核")
    private String status;

    /** 排序（100开始） */
    @Excel(name = "排序", readConverterExp = "1=00开始")
    private Long orderNum;

    /** 类型 1：审批，2：抄送 */
    @Excel(name = "类型 1：审批，2：抄送")
    private String nodeType;

    /** 上级节点id */
    @Excel(name = "上级节点id")
    private Long upNodeId;

    /** 下级节点id */
    @Excel(name = "下级节点id")
    private Long downNodeId;

    /** 审批备注 */
    @Excel(name = "审批备注")
    private String approverRemark;

    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date approvalTime;

    /** 审批交换时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审批交换时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date changeTime;

    /** 审核交换备注 */
    @Excel(name = "审核交换备注")
    private String changeRemark;

    /** 申请id */
    @Excel(name = "申请id")
    private Long applyId;

    /** 申请表*/
    private FlowApply flowApply;
    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setApproverUid(String approverUid)
    {
        this.approverUid = approverUid;
    }

    public String getApproverUid()
    {
        return approverUid;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setOrderNum(Long orderNum)
    {
        this.orderNum = orderNum;
    }

    public Long getOrderNum()
    {
        return orderNum;
    }
    public void setNodeType(String nodeType)
    {
        this.nodeType = nodeType;
    }

    public String getNodeType()
    {
        return nodeType;
    }
    public void setApprovalTime(Date approvalTime)
    {
        this.approvalTime = approvalTime;
    }

    public Date getApprovalTime()
    {
        return approvalTime;
    }
    public void setChangeTime(Date changeTime)
    {
        this.changeTime = changeTime;
    }

    public Date getChangeTime()
    {
        return changeTime;
    }
    public void setChangeRemark(String changeRemark)
    {
        this.changeRemark = changeRemark;
    }

    public String getChangeRemark()
    {
        return changeRemark;
    }
    public void setApplyId(Long applyId)
    {
        this.applyId = applyId;
    }

    public Long getApplyId()
    {
        return applyId;
    }

    public FlowApply getFlowApply() {
        return flowApply;
    }

    public void setFlowApply(FlowApply flowApply) {
        this.flowApply = flowApply;
    }

    public Long getUpNodeId() {
        return upNodeId;
    }

    public void setUpNodeId(Long upNodeId) {
        this.upNodeId = upNodeId;
    }

    public Long getDownNodeId() {
        return downNodeId;
    }

    public void setDownNodeId(Long downNodeId) {
        this.downNodeId = downNodeId;
    }

    public String getApproverRemark() {
        return approverRemark;
    }

    public void setApproverRemark(String approverRemark) {
        this.approverRemark = approverRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("approverUid", getApproverUid())
                .append("status", getStatus())
                .append("upNodeId", getUpNodeId())
                .append("downNodeId", getDownNodeId())
                .append("approverRemark", getApproverRemark())
                .append("orderNum", getOrderNum())
                .append("nodeType", getNodeType())
                .append("approvalTime", getApprovalTime())
                .append("changeTime", getChangeTime())
                .append("changeRemark", getChangeRemark())
                .append("applyId", getApplyId())
                .toString();
    }
}
